#ifndef ALFS_LANGUAGE_SUPPORT_GENERAL_MACROS_H
#define ALFS_LANGUAGE_SUPPORT_GENERAL_MACROS_H
#include    <alfs/config.hpp>

// File [alfs/language_support/general_macros.h].
//
// (c) copyright Alf P. Steinbach 2008.
// Use, modification and distribution are subject to the "New BSD License"
// as listed at <url: http://www.opensource.org/licenses/bsd-license.php>.


#if     defined(_MSC_VER)
#   define      FUNCATTR_NORETURN       __declspec( noreturn )
#   pragma warning( disable: 4646 )     // non-return function has non-void return type
#elif   defined(__GNUC__)
#   define      FUNCATTR_NORETURN       __attribute__((__noreturn__))
#else
#   define      FUNCATTR_NORETURN
#endif

#if     defined(_MSC_VER)
#   define      DUMMY_RETURN(e)
#elif  defined(__GNUC__)
#   define      DUMMY_RETURN(e)
#else
#   define      DUMMY_RETURN(e)         return e
#endif


#define ALFS_STRINGIFIED( e )       #e

#endif
